const path = require('path')
module.exports = {
  publicPath: './',
  lintOnSave: false,
  chainWebpack: config => {
    // 当前环境为 发布阶段
    config.when(process.env.NODE_ENV == 'production',config=>{
      config.entry('app').clear().add('./src/main-prod.js')
            //使用externals设置排除项
      config.set('externals',{
        vue:'Vue',
        'vue-router':'VueRouter',
        axios:'axios',
        echarts:'echarts',
        nprogress:'NProgress',  
        'vue-quill-editor':'VueQuillEditor'
      })
      //使用插件
      config.plugin('html').tap(args=>{
        //添加参数isProd
        args[0].isProd = true
        return args
      })
    })
    // 当前环境为 开发阶段
    config.when(process.env.NODE_ENV == 'development', config => {
      config.entry('app').clear().add('./src/main-dev.js')
      //使用插件
      config.plugin('html').tap(args => {
        //添加参数isProd
        args[0].isProd = false
        return args
      })
    })
    const svgRule = config.module.rule('svg')
      svgRule.uses.clear(),
      svgRule
        .test(/.svg$/)
        .include.add(path.resolve(__dirname, './src/icons/svg'))
        .end()
        .use('svg-sprite-loader')
        .loader('svg-sprite-loader')
        .options({
          symbolId: 'icon-[name]'
        })
    const fileRule = config.module.rule('file')
    fileRule.uses.clear()
    fileRule
      .test(/.svg$/)
      .exclude.add(path.resolve(__dirname, './src/icons/svg'))
      .end()
      .use('file-loader')
      .loader('file-loader')
  }
}
